package history.study.tow_pointer;

import java.util.Arrays;

public class LeetCode_31_error {
    public static void main(String[] args) {

    }

    // 未明白题意
    /**
     * 算法思想：从后往前遍历，如果寻找第一个顺序对转化为逆序对即可
     *  这里要查找是的是字符串中最小的两个顺序对进行转化
     *   如果遍历完成都没发现顺序对，则调用函数进行一次排序返回
     *
     */
    public static void nextPermutation(int[] nums) {
        if (nums == null || nums.length<=1) return;
        int pre = nums.length-2;
        int next = nums.length-1;
        int rightIndex=next;
        while (pre>=0) {
            if (nums[pre]<nums[next]) {
                int temp = nums[pre];
                nums[pre] = nums[rightIndex];
                nums[rightIndex] = temp;
                return;
            }
            if (nums[pre]<nums[rightIndex]) {
                rightIndex = pre;
            }
            pre--;
            next--;
        }
        Arrays.sort(nums);
        return;
    }
}
